package contest1609;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.PrintWriter;
import java.util.Scanner;

public class FDeque {
    static int MAX_SIZE = 2000000;
    static int[] Q = new int[MAX_SIZE];
    static int head = MAX_SIZE / 2, tail = head - 1;
    static Scanner cin = new Scanner(new BufferedInputStream(System.in));//大量输入优化版本
    static PrintWriter cout = new PrintWriter(new BufferedOutputStream(System.out));//大量输出优化版本
    static PrintWriter cerr = new PrintWriter(System.err, true);//开启调试模式,一般输出量不大，不需要buffered

    public static void main(String[] args) {
        //TODO AOJ开启你的ACM传奇人生
        cerr.println("----Start your ACM legendary life with AOJ(www.webturing.com)----");
        int q = cin.nextInt();
        while (q-- > 0) {
            int type = cin.nextInt();
            if (type == 0) {
                int d = cin.nextInt();
                int x = cin.nextInt();
                if (d == 0) Q[--head] = x;
                else Q[++tail] = x;
            } else if (type == 1) {
                int p = cin.nextInt();
                cout.println(Q[head + p]);
            } else {
                int d = cin.nextInt();
                if (d == 0) ++head;
                else --tail;
            }
        }

        cin.close();//关闭输入流
        cout.close();//关闭输出流，这是必须的，否则一般不会自动刷新缓冲区

    }
}